#ifndef __SOC_EXTI_BASE_H__
#define __SOC_EXTI_BASE_H__

#include "iperipheral.h"
#include "soc_gpio.h"
#include "soc/interface/if_soc_exti.h"

/// @brief 
class SOC_Exti : public IF_SOC_Exti
{
public:
    explicit SOC_Exti(GpioExtiDevId extiId = GpioExtiDevId::None);
    virtual ~SOC_Exti();

public:
    void InitDevId(GpioExtiDevId extiId);
    
public:
    void SetExtiCallBack(const IF_SOC_Exti::EXTI_FUNC &func);
    void RaiseExtiCallBack();

private:
    IF_SOC_Exti::EXTI_FUNC m_extiFunc = nullptr;
};

#endif // __SOC_EXTI_BASE_H__
